בואו נגלה מה זה Yii, מאיפה להוריד אותו ואיך להתקין אותו. ואגב, האתר בו אתם גולשים כעת עובד על Yii. אז מה זה בעצם?
Yii - פריימקוורק
Yii הינו פריימוורק מתקדם ונוח לשימוש, הוא חינמי ומתקדם מאוד. אני, באופן אישי, משתמש בו כמעט בכל אתר כשיש צורך ב-PHP. :-) הוא גם חוסך לי המון בעיות. אני יודע שאני הולך לראות פה כמה תגובות שאומרות "אני מעדיף לעשות את המחלקות שלי לבד" וכל הדברים האלה, אבל זה בטח כי הם לא בנו מערכת גדולה עם הפריימוורק הזה. בהתחלה למדתי עליו רק בשביל הידע הכללי, אבל אז הבנתי שהוא באמת אחד טוב.
חובה לדעת להשתמש במחלקות!
+ המלצה שלי להשתמש ב-netbeans כשעובדים עם פריימורק כזה.
להורדת הפריימוורק Yii לחצו כאן.
נכין תיקייה של הפרויקט שלנו ולשם נעביר את התיקייה framework שנמצאת ב-RAR.
ניצור קובץ ראשי (index.php) בתיקייה של הפרויקט, ולשם נטען את ה-Yii עבור הפרוייקט.
<?php
require( dirname(__FILE__) . "/framework/yii.php");
?>
require( dirname(__FILE__) . "/framework/yii.php");
?>
עכשיו אנחנו צריכים config.
ניצור תיקייה בשם protected, ושם ניצור תיקייה בשם config, בתוכה ניצור קובץ בשם config.php שיחזיר מערך, מה שאומר שאם נעשה לו Include, הוא יחזיר מערך במקום פעולות.
protected/config/config.php
<?php
return array
(
);
?>
return array
(
);
?>
עכשיו נגרום ל-Yii "לפעול".
לקובץ index.php נוסיף משתנה בשם config, שיעשה include לקובץ config שלנו, מה שאומר שהמשתנה config הוא מערך עכשיו.
$config = include(dirname(__FILE__) . "/protected/config/config.php");
לאחר מכן "נריץ" את האתר עם פונקציה של Yii.
Yii::createWebApplication($config)->run();
כמו שניתן לראות, הפונקציה שיוצרת אפליקציה מקבלת config, שדואג להגדרות של האתר.
הקוד:
index.php
<?php
$config = include(dirname(__FILE__) . "/protected/config/config.php");
require( dirname(__FILE__) . "/framework/yii.php");
Yii::createWebApplication($config)->run();
?>
$config = include(dirname(__FILE__) . "/protected/config/config.php");
require( dirname(__FILE__) . "/framework/yii.php");
Yii::createWebApplication($config)->run();
?>
protected/config/config.php
<?php
return array
(
);
?>
return array
(
);
?>
אם ניכנס עכשיו לאתר, נקבל שגיאה - הדף לא נמצא; זה כי לא ניתן להשתמש בקונטרולר Site.
קונטרולר זה מה שדואג לפעולות של האתר. אם לא הגדרנו קונטרולר ראשי, הקונטרולר Site יוגדר כראשי באופן אוטומטי.
אז בואו נגדיר קונטרולר. ראשית, ל-config נוסיף אלמנט, למפתח נקרא deafultController והתוכן בתוכו יהיה השם של הקונטרולר הראשי, אנחנו נקרא לו main - ראשי.
אז הקובץ config.php הוא:
<?php
return array
(
"defaultController" => "main"
);
?>
return array
(
"defaultController" => "main"
);
?>
אם נריץ את האתר עכשיו , נראה שהקונטרולר main לא קיים, מה שאומר שהצלחנו לשנות את הקונטרולר הראשי.
עכשיו נכין את הקונטרולר שלנו. ניצור תיקייה בשם controllers בתיקייה protected, שם ניצור קובץ בשם MainController.php. כמו שניתן לראות אנחנו רושמים את השם של הקונטרולר ואז מוסיפים Controller.
בתוך אותו הקובץ ניצור מחלקה בשם MainController, כמו השם הקובץ - שם הקונטרולר + Controller, והיא תירוש מהמחלקה CController.
protected/controllers/MainController.php
<?php
class MainController extends CController
{
}
?>
class MainController extends CController
{
}
?>
אם נכנס עכשיו לאתר, לא נקבל שגיאה שהקונטרלר לא קיים, אבל נראה שהפעולה הראשית לא קיימת.
הפעולה הראשית נקבעת בפונקציה actionIndex, אז ניצור פונקציה כזאת כ-public, כך שכל מה שיקרה בפונקציה יקרה באתר.
נוסיף אותה, ובתוכה נכתוב echo "hello world";.
protected/controllers/MainController.php
<?php
class MainController extends CController
{
public function actionIndex()
{
echo "hello world";
}
}
?>
class MainController extends CController
{
public function actionIndex()
{
echo "hello world";
}
}
?>
protected/config/config.php
<?php
return array
(
"defaultController" => "main"
);
?>
return array
(
"defaultController" => "main"
);
?>
index.php
<?php
$config = include(dirname(__FILE__) . "/protected/config/config.php");
require( dirname(__FILE__) . "/framework/yii.php");
Yii::createWebApplication($config)->run();
?>
$config = include(dirname(__FILE__) . "/protected/config/config.php");
require( dirname(__FILE__) . "/framework/yii.php");
Yii::createWebApplication($config)->run();
?>
כרגע זה אולי לא נראה לכם ממש שימושי; זה רק כי זה הבסיס. בהמשך אתם תבינו שזה מאוד שימושי. :-)
תגובות לכתבה:
מדריך מעולה, נחכה לסדרת ההמשך :)
אהבתי מאוד, כל הכבוד.
יהיה נחמד לדעת איך ניגשים בכלל לכל הקטע של מודלים.
מחכה למאמר הבא.:)
קודם כל תודה רבה על המדריך.
מצטער על העיכוב עם הפרסום,קרה שלא נשלחה אלי הודעה על פרסום כזה מגניב חדש ולא ידעתי על קיומו.
המדריך מעולה. הוא מסביר באופן מצוין על מה YII פועלת, מה עושה הקונפיג וממה בנוי קובץ האינדקס.
הייתי רוצה להוסיף שביחד עם YII בא גם קובץ yiic.bat / yiic(.sh) / yiic.php שיודע לייצר שלד לאפליקציה בעצמו, ליצור קונפיג, שני קבצי אינדקס אחד למערכות בדיבאג ואחד בפרודאקשן. השדל כולל את הקונפיגרוציות ללוגים, לחיבור למסד, כמה קונטרולרים, ווויוז בסיסיים, איזה עמוד ריק ועזר גנרציית קוד אוטומטית.
http://he.yiiframework.co.il/documentation/guide/topic/quickstart.first-app
מקווה לראות עוד מדריכים בנושא :-) שוב תודה. אדיר.
לא יודע למה PHP יותר מסובכת, ב .NET קיימת אפשרות מובנת הנקראת ASP.NET MVC 3 web project.
ושם כל זה מגיע מוכן ומזומן לעבודה.
הרבה יותר נוח לעבוד אם זה שם.. בגלל זה פרשתי מ PHP..
asp.net mvc הוא תוסף שצריך להתקין בנפרד (או שהוא בא עם ההתקנה שלך ל visual studio מאיפה שהורדת). בכל אופן הם חלקים נפרדים. גם כאן הם נפרדים, רק שאתה לא מוגבל לפריימוורק אחד.
יש לכל שפה את היתרונות שלה ולדעתי עדיף שתשתמש בשפה שבה לך אישית יותר נוח.
נוח לך .NET - תשתמש בה :-)
אם זה היה אתר על .NET כנראה שזו היית כתבה על "מבוא ל asp.net mvc"
כרגע יצא שזה על mvc framework ב PHP
למרות שאני מאוד אשמח אם תכתוב כתבה על asp.net mvc
שיחקת אותה, פורץ דרך שכמוך...
אמיר סימן טוב
אני רואה שאנשים אהבו את המדריך :) אני אעשה עוד מדריך בקרוב
מדריך מעולה, מחכה לחלק השני :)
נראה טוב, תודה.
מחכה להמשך. :)
לא הבנתי במה הוא תורם?
אני לא אוהב לחזור על אותם דברים עוד פעם, ממה שלמדתי עכשיו הוא לא יתרום כלום אבל בהמשך אתה תראה במה הוא יתרום: בסדר, נוחות, עבודה פשוטה עם מסד נתונים ועוד הרבה דברים.
בנוסף יכול לתרום בללמוד אנגלית ולהשתמש בגוגל, כי כנכנסים לטכנולוגיה שלא מכירים - אין ממש בררה. זה אגב אחת הסיבות שאנשים לא קופצים ישר לדברים נוחים וטובים יותר (כמו אני ואמאזון?!) בלימוד צריך להשקיע, להתעמץ, להיכשכל לפני שמשהו ייצא.. כקה לראות מאחורי זה את התועלת לתווך הארוך ושההשקעה הזאת תחזור.
אני לא מכיר מישהו שהתחרת על שלמד jquery
+ לעבור פריימוורק זה חתיכת קפיצת מדרגה. זה לעבור מתכנות פרוצדורלי ל OOP, מברדאק ל MVC ומקוד שכולו שלי לקוד שאין לי מושג איך הוא עובד. לא לכולם זה מתאים ולא לכולם זה עוזר. לאט לאט, אין לאן למהר
התיקיית framework יש בה משהו כמו 1800 קבצים, בכל אתר שאני כותב בעזרת YII אני צריך להעביר את כל ה1800 קבצים ? אין איזה קובץ או שתיים שחוסכים את כל זה ?
לא, אבל אתה יכול לעשות FRAMEWORK ובכל אתר שאתה משתמש בYII תעשה INCLUDE לאותו FRAMEWORK ולא תצטרך להעביר אלף פעמים רק פעם אחת
אבל ה FRAMEWORK הזה יש בו 1800 קבצים..
בדרך כלל פאנל ניהול של אחסון בא עם איזה file explorer כזה שדרכו אפשר לראות איזה קבצים יש לך בשרת
ובנוסף אפשר דרכו לפתוח קבצי ZIP, ככה שתוכל להעלות קובץ ZIP אחד ולחלץ אותו ישירות בשרת.